/**
 * MODULE DE L'APPRENTI
 *----------------------------------------------------
 * 
 * Le rôle de l'appreti est de travailler avec le cuisinier spécialiste
 * dans le but des réaliser des plats. Il reçoit des ordres du cuisinier.
 * et il va chercher des ingrédients pour la préparation du repas(2) une fois
 * terminee il communique aux autres aprentis, la place des ingrédients trouvés dans
 * les 3 entrepots et il se replacent près des cuisiniers.
 *
 **/
 
:- module(apprenti,[
		
	]).

	/**
	* I. NOMS DES APPRENTIS
	*
	* 
	**/
	apprenti(nom_apprenti_1).
	apprenti(nom_apprenti_2).
	apprenti(nom_apprenti_3).
	
 /**
  *  II. LES ETATS DES APPRENTIS
  *
  *   On distingues les principaux états suivants pour les apprentis.
  * 
  *   RECHERCHE_INGREDIENTS - lorsqu'il a reçu ordre de rerchercher des ingrédients 
  *   TERMINE_ENTREPROT_A -  
  *   TERMINE_ENBTREPOT_B -
  *   TERMINE_ENTREPORT_C -
  *
  *   INGREDIENTS_TROUVES - Il a trouvé tous les ingrédients.
  *   à rendre aux apprentis.
  *   
  **/	
  
  
	
  /** III. LES ACTIONS DU CHEF CUISINIER
 
   *
   * Les actions seront codées avec la syntaxe suivante :

   *    action(ACTION,CONDITION,A_SUPPRIMER,A_AJOUTER)
   *
   ****
   *    
   *    ACTION      :  action à executer
   *
   *    CONDITION   :  ensemble des conditions préalable à l'action.
   *
   *    A_SUPPRIMER :  ensembles etats,condition qui ne seront plus
   *                   valides après execution de l'environement.
   *
   *    A_AJOUTER   :  ensemble des nouvelles conditions valides après
   *                   execution de l'action.            
   *
  **/

    
     /**
     * II-1. RECHERCHE_ENTREPOT_A
     *
     *  Cette action permet a l'apprenti de pouvoir rechercher les ingrédients qui lui on étés
     *  demandés par le cuisinier spécialiste dans l'entrepot A.
     *
     * CONDITION :
     *
     *    L'apprenti à reçu l'ordre de rechercher des ingrédients.
     *
     **/
     recherche_entrepot_A().
     
   /**
     * II-2. RECHERCHER_DANS_ENTREPOT_B
     *
     *  Cette action permet a l'apprenti de pouvoir rechercher les ingrédients qui lui on étés
     *  demandés par le cuisinier spécialiste dans l'entrepot B.
     *
     * CONDITION :
     *
     *     
     *
     **/
      recherche_entrepot_B().
      
    /**
     * II-3. RECHERCHER_ENTREPOT_C
     *
     *  Cette action permet a l'apprenti de pouvoir rechercher les ingrédients qui lui on étés
     *  demandés par le cuisinier spécialiste dans l'entrepot C.
     *
     * CONDITION :
     *
     *    L'apprenti à reçu l'ordre de rechercher des ingrédients.
     *
     **/
     recherche_entrepot_C().
     
   /**
    * II-4. RECHERCHER_INGREDIENTS
    *
    *
    *   Cette action permet à l'apprenti de remettre ses ingrédients au cuisinier spécialiste 
    *   qui l'a envoyé.
    *   
    *   CONDITION
    *       l'apprentu à recu l'ordre d'aller rechercher des ingrédients
    *   	
    **/
     
     
     
    /**
    * II-4. REMETTRE_INGREDIENTS
    *
    *
    *   Cette action permet à l'apprenti de remettre ses ingrédients au cuisinier spécialiste 
    *   qui l'a envoyé.
    *   
    *   CONDITION
    *       Il doit être auprès du cuisninier qui l'avait envoyé.
    *   	
    **/
    remettre_ingredients().
    
   /**
    * II-5. ALLER_ENTREPOT_A
    *
    *  CONDITION
    *
    **/      
     aller_entrepot_a()
   /**
   * II-6. ALLER_ENTREPOT_B
   *
   * CONDITION
   * 	
   **/  
    aller_entrepot_b().
    
  /**
   * II-6. ALLER_ENTREPOT_C
   *
   * CONDIITION:
   *  	
   **/ 
    aller_entrepot_c().
    
     
    /** LES DEPLACEMENTS DANS L'UNIVERS **/
    
    /**
     * II-8. ALLER_AU_SPECIALISTE_ENTREE
     
     *  
     *  CONDITION
     *    spécialiste en attente de l'apprenti.
     **/
     aller_au_specialiste_entree().
     
    /**
     * II-9. ALLER_AU_SPECIALISTE_PP
     * 
     * 
     *  CONDITION
     * 	 specialiste des plats principaux en attente de l'apprenti
         OU apprenti trouvé tous les ingrédinents
     **/
          
     aller_au_specialiste_pp().
     
    /**
     * II-9. ALLER_AU_SPECIALISTE_DESSERT
     * 
     * 
     *  CONDITION
     * 		specialiste des desserts en attente de l'apprenti
         OU apprenti trouvé tous les ingrédinents
     **/
          
     aller_au_specialiste_dessert().
     
   /**
     * II-10. ALLER_A_SON_POSTE
     * 
     * 
     *  CONDITION
     * 		l'apprenti n'a aucune tâche a faire.
     **/
          
     aller_au_son_poste().     
     